import request from '@/utils/request'

/**
 * 用户认证相关接口
 */

// 用户登录
// @param {Object} data - 登录信息
// @param {string} data.username - 用户名
// @param {string} data.password - 密码
// @param {boolean} data.remember - 是否记住登录状态
// @return {Promise} 返回登录结果和token
export const login = (data) => {
  return request({
    url: '/users/auth',
    method: 'post',
    data
  })
}

// 用户注册
// @param {Object} data - 注册信息
// @param {string} data.username - 用户名
// @param {string} data.password - 密码
// @param {string} data.nickname - 昵称
// @return {Promise} 返回新创建的用户ID
export const register = (data) => {
  return request({
    url: '/users/register',
    method: 'post',
    data
  })
}

/**
 * 用户信息相关接口
 */

// 获取当前用户信息
// @return {Promise} 返回当前登录用户的详细信息
export const getCurrentUser = () => {
  return request({
    url: '/users/me',
    method: 'get'
  })
}

// 更新当前用户信息
// @param {Object} data - 更新信息
// @param {string} data.nickname - 昵称
// @param {string} data.avatar_data - 头像数据
// @return {Promise} 返回更新结果
export const updateUserInfo = (data) => {
  return request({
    url: '/users/me',
    method: 'put',
    data
  })
}

// 更新密码
// @param {Object} data - 密码信息
// @param {string} data.oldPassword - 原密码
// @param {string} data.newPassword - 新密码
// @return {Promise} 返回更新结果
export const updatePassword = (data) => {
  return request({
    url: '/users/me/password',
    method: 'put',
    data
  })
}

// 获取指定用户信息
// @param {number} id - 用户ID
// @return {Promise} 返回指定用户的详细信息
export const getUserById = (id) => {
  return request({
    url: `/users/${id}`,
    method: 'get'
  })
}

// 获取用户的书籍列表
// @param {number} id - 用户ID
// @return {Promise} 返回指定用户发布的书籍列表
export const getUserBooks = (id) => {
  return request({
    url: `/users/${id}/books`,
    method: 'get'
  })
}

// 获取用户的评论列表
// @param {number} id - 用户ID
// @return {Promise} 返回指定用户发表的评论列表
export const getUserComments = (id) => {
  return request({
    url: `/users/${id}/comments`,
    method: 'get'
  })
} 